#include<stdio.h>
int main()
{
	int N = 0;
	scanf("%d",&N);
	int cnt = 0;
	for(int i=1;i*i<=N;i++)
	{
		for(int t = i;t*t<=N;t++)
		{
			if(i*i+t*t==N)
			{
				cnt++;
				printf("%d %d",i,t);
				printf("\n");
			}
		}
	}
	if(cnt==0)
		printf("No Solution");
	return 0;
}
//#include<stdio.h>
//int main()
//{
//	int N = 0;
//	int cnt = 0;
//	scanf("%d",&N);
//	for(int i = 1;i*i<=N;i++)
//	{
//		int X = i ;
//		for(int s = i;s*s<=N&&s>=i;s++)
//		{
//			int Y = s;
//			if(X*X+Y*Y==N)
//			{
//				cnt++;
//				printf("%d %d",X,Y);
//				printf("\n");
//			}
//		}
//		
//	}
//	if (cnt ==0)
//	{
//		printf("No Solution");
//	}
//	return 0;
//}
